home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Atari Forever 4
/
Atari Forever 4.zip
/
Atari Forever 4.iso
/
SERIE_SP
/
SP_003
/
FREEDOM
/
FREEDOM.TXT
< prev
next >
Wrap
Text File
|
1998-03-14
|
20KB
|
436 lines
Freedom™ V1.00 Demo
-------------------
06.01.1995
(c) 1994 by Christian Krüger und Kolja Koischwitz
0. Einleitung
Alle Software rüstet sich fürs Multitasking. Dialoge werden ins Fenster
gepackt, Protokolle der verschiedensten Art werden unterstützt.
Übrig bleiben letzlich nur noch zwei Relikte aus der Singel-Zeit: Der
Fileselektor und die Alertbox. Bisher gab es keine Rettung vor diesen
Systemblockierern, doch damit ist jetzt Schluß: Freedom™ ist da!!!!
Die (unglaublichen) Fietschas:
- Bis zu 8 Nonmodale Fileselektoren/Alertboxen gleichzeitig!
- Programme, die VA_START unterstützen, müssen zT nichtmal
blockiert werden!
- Font und Größe des Fileselektors ist variabel!
- Mehrfachfileselektion! (natürlich auch Selectric-kompatibel)
- Das System wird nicht durch Pollen gebremst (AES-Messages)
- Bis zu 40 voreinstellbare Files (!), Pfade sowie Extensions
- Maximal intuitive Bedienung, kurze Wege, wenig Klicks
- Linkshänder-Mode (!!!!)
- Unix-Patterns (*,?,[]) sowie Extensionlisten ("*.TOS,*.PRG")
- Saubere Trennung vom Trap-Handler und Fileselektorapplikation
(definierte Schnittstelle, der Fsel-"Server" ist auch direkt
über AES-Messages ansprechbar!)
- Dateien/Ordnern können Bildchen zugeordnet werden
- Drag&Drop-Unterstützung (Pfade & Files können auf den Fileselektor
gezogen werden (AV- bzw MTOS-D&D) und umgekehrt
- Nachrichen, die Änderungen in Verzeichnissen bekanntgeben, werden
ausgewertet (SH_WDRAW, AV_PATH_UPDATE, SC_CHANGED) und versendet!
- Fuzzy-Namenserkennung! Freedom tut alles, um der aufrufenden
Applikation (auch unter SingelTOS) einen aussagekräftigen Namen
zu geben (Menüzeile,Xacc,AV-Protokoll...)
- Dateien löschen, Neue Ordner/Dateien erzeugen und Datei/Ordner-Info
- Dateien nach Maske suchen
- Aktuell selektierte Files können ins Clipboard exportiert werden
- Volle Kommunikation mit Gemini
- Dateien löschen, kopieren, verschieben per D&D, sofern Gemini
vorhanden ist oder Kobold_2 parallel läuft bzw. die Environment-
Variable KOBOLD_PATH unter Multitasking den Pfad zum Kobold weist..
1. Brauche ich Freedom?
- Die Feature-Liste hat spontane Begeisterung bei ihnen ausgelöst.. (o:
- Sie arbeiten vorzugsweise unter einem Multitasking-OS
- Sie benutzen kaum noch Programme, die nicht GEM-konform sind
- Und schließlich: Ihnen sind möglicherweise einige der folgenden Punkte
schonmal aufgefallen oder sie haben sich sogar darüber schwarzgeärgert:
Wenn ich einen Flydeil, einen Fileselektor oder einen Alert offen hab, ..
- .. hört mein Terminalprogramm auf, anzuwählen
- .. kriege ich Übertragungs-Fehler beim Up-/Download mit meinem Terminalprog.
- .. hört mein GEM-konformer Raytracer auf zu tracen
- .. hört mein GEM-konformer Morpher auf zu morfen
- .. hört mein GEM-konformer Packer auf zu packen
(es sei denn, er ist von Christian Grunenberg...)
- .. bleibt die Zeit in meiner Fenster-Uhr stehen
- .. kommt beim Druck auf F1 nicht mehr mein heißgeliebter Kobold
(und ich muss zum Kopieren das beknackte Funktionspopup meines
total überladenen Super-Fileselektors benutzen..)
- .. komm ich nicht mehr an das MagX-Popup
- .. komm ich nicht mehr an die Menüzeile
- .. kann ich mit meinem Screenshot-Programm keine 'Shot's' mehr machen
- .. usw usw
Hängen die Probleme mit Flydials zusammen, benutzen Sie möglicherweise das
falsche Programm (oder Gemini), und sorgen damit vielleicht sogar
dafür, das diese steinzeitliche Form des Dialoges sich am Leben erhält.
Manch einer erinnert sich vielleicht noch: Vor ca 2 Jahren schon (Als die
Zahl der Atari-User noch dreistellig war (o:) fing ein gewisser Helmut
Neukirchen an, über ein 1 Jahr lang an einem Produkt namens Multidial zu
basteln, das die an sich modalen Dialoge des Ataris ins Fenster
verfrachten konnte. Die Atari-Welt ignorierte ihn und seine Bemühungen,
erfand statt dessen die "Flugecke". Viele viele Flydial-Libraries kamen
auf den Markt und viele Programme entstanden, von denen einige, obwohl sie
noch weiterentwickelt werden, heute leider immer noch nicht auf
Fensterdialoge umgestellt sind (Wie egoistisch: "Du sollst keinen anderen
Dialog neben meinem auf dem Screen haben, dein Multitasking stehe still...").
Damit sie gleich probieren können, was Freedom ihnen bringt, hier die
2. Installation
- FFSEL.PRG in den Auto-Ordner
- FREEDOM.PRG in FREEDOM.ACC umbennen und als Accessory installieren
(unter MagX/MiNT kann FREEDOM.PRG auch später nachgestartet werden
bzw unter MagX auch in den APPS Ordner oder unter MiNT ins GEM.CNF)
3. Funktionsweise (für die Interessierten..)
Freedom besteht aus zwei Teilen:
- Einem Fileselektor/Alertboxen-"Server", der als parallele Applikation
bzw. Accessory läuft, und darauf wartet, über eine definierte
Schnittstelle (bestehend aus einem Satz AES-Messages) aktiviert zu
werden. Er kann (nur vom Speicherplatz und den verfügbaren Fensterhandles
begrenzt) beliebig viele Nonmodale Alertboxen und Fileselektoren öffnen
- Einem residenten Teil, der Applikationen, die einen Fileselektor bzw.
eine Alertbox ausgeben wollen, den Programmfaden "abnimmt", einen
entsprechenden Request an den Server sendet und in einer Eventloop auf
die Antwort-Nachricht des Servers wartet. Innerhalb dieser Eventloop
wird gleichzeitig noch die Behandlung einiger anderer Messages
(Fenster-Redraw, Moven, Sizen, Toppen, Lowern,..) für die Zeit des
aktiven Alerts/Fileselektors durchgeführt, sowie die Menüzeile des
aufrufenden Programms dis- und wieder enabled. Durch ausgeklügelte
Programmierung ist dieser Teil bis zu 8 mal reentrant, dh es können bis
zu 8 verschiedene Applikationen einen Alert bzw. einen Fileselektor
offen haben, bevor der Traphandler den Aufruf an das Betriebssystem
weitergibt.. Dieser Teil übernimmt nebenbei ggf. noch das Umsetzen der
Freedom-Antwort in eines der 3 Selectric-Protokolle. Das dabei
entstehende Problem, daß es nur einen Selectric-Cookie gibt, aber
möglicherweise mehrere Applikationen gleichzeitig über ihn
kommunizieren, wurde auf ein minimum reduziert...
4. Einschränkungen der Demoversion
Im "Server" (FREEDOM.PRG) sind die Editfelder nicht editierbar. Dadurch
läßt sich (fast) alles austesten, ohne das die Demo im echten Einsatz
vernünftig nutzbar wäre. Und wie Editfelder funktionieren, kann sich jeder
vorstellen. Die Editfelder von EnhancedGEM können dann sogar noch einiges
mehr: Clipboard (^C,^X,^V usw.), XAcc2 (Text auf die Eingabefelder
draggen), Insert/Replace-Mode und alles, was man schon von Let 'em Fly
kennt... Aber wie gesagt, nur in der Vollversion... Dinge wie Objekt-Info,
Neues Objekt, Objekt Suchen und Endungen von Hand eingeben, funktionieren
natürlich auch nicht ohne Editfelder. Und ohne Kobold/gemini ist das löschen
weiterhin deaktiviert (Wir sind immer noch gemein.. (o:)
Im Trap-Handler (FFSEL.PRG) ist folgende (kleine) Einschränkung eingebaut:
Applikationen mit einer Application-ID > 9 werden ignoriert, es kommt ein
Systemfileselektor/Systemalert.
5. Bischen was zur Bedienung
Allgemein entspricht der Rechtsklick einem Doppelklick auf das Objekt.
Alle Popups sind bei Freedom über die Box erreichbar, in der der aktuelle
Pfad angezeigt wird. Klickt man zB auf die Laufwerkskennung, kommt das
Laufwerkspopup, klickt man auf die Extension, kommt das Extensionpopup.
Per Doppel-/Rechtsklick bekommt man das Pfadpopup. Klickt man mitten in
den Pfad, springt man n Level in die angeklickte Direktory zurück (MacPath
Ersatz). Klickt man auf den letzen Ordner des Pfades, so bekommt man ein
Popup mit "Alternativen" für diesen Ordner, dies erspart eine der
häufigsten Aktionen, nämlich "eine Ebene zurück, eine Ebene wieder hoch".
Das Sortierungspopup versteckt sich hinter dem Slider, es wird
durch einen Doppel-/Rechtsklick aktiviert (Sehr praktisch, denn wenn man
eine Datei sucht und sich deshalb für eine andere Sortierung entscheidet,
hat man meist eh grad den Slider "in der Hand")
Die voreingestellten Files lassen sich durch Klick auf das Wort "Datei :"
vor dem Editfeld erreichen.
Sogar n' paar Tastenkombinationen haben wir Freedom schon spendiert:
Alt-A..Z: Laufwerk umschalten
^BS: Eine Direktory-Ebene zurück (Closer)
^A: Bedient den SelectAll/InvertSel.-Knopf (Fuller)
^D: Selektierte Dateien löschen
^N: Neues Objekt
^I: Objekt-Information
^F: Objekt suchen
^C: Selektierte Dateien als Text ins Clipboard exportieren
^V: Text aus dem Clipboard ins Editfeld einkleben
^#: Autolocator an/aus
^<: Einmaliger Autolocator
^H,^J,^K,^L,^X,^R: Sortiermodus wählen
^W: Globaler Fensterwechsel (mit Gemini)
(Mittels zusätzlichem Shift kann man unter Gemini Freedom-lokalen
Fensterwechsel erzwingen)
^O: Selektiertes Objekt unter Gemini öffnen
Return: Bedient "Ok"
Undo: Bedient "Abbruch"
Ctrl-Space: Fileselektor/Alert (de-)iconifizieren
Eine einzelne Datei läßt sich auch mittels der Cursortasten (Mit oder
ohne Shift bzw. Ctrl) sowie mit ClrHome anwählen.
Mit Shift bzw. mit gedrücktgehaltener Maustaste lassen sich mehrere Dateien
auswählen. Zurückgegeben werden natürlich nur soviele, wie die Applikation
zulässt (und das ist im Normalfall nur eine).
Wird versucht, Fenster einer gerade durch einen Fileselector/Alert
blockierten Applikation zu toppen, so wird diese Nachricht statt dessen an
den Server weitergereicht und so der zugehörige Fileselector/Alert getoppt
(Also nicht wundern). Nebenbei: In der Zeit, wo eine Applikation einen
Fileselector/Alert offen hat, unterstützt sie auch Backdropping.
Wenn sie es im Normalbetrieb nicht tut, ist das kein Fehler von Freedom...
ACHTUNG!!!!!!
Bevor sie einen Auflösungswechsel machen, sollten sie alle
Fileselektoren/Alerts von Freedom schliessen!!!
6. Konfiguration
Freedom läßt sich schon in der Demoversion in weiten Grenzen konfigurieren.
Beeinflussen können sie neben vielen Unwichtigkeiten folgendes:
- Font, Größe und Zeilenabstand im Fileselektor
- Position des Scrollbars (links/rechts) im Fileselektor
- Ob Groß- oder Kleinbuchstaben verwendet werden sollen
- Ob der Autolocator aktiv ist
- Ob die Aufruf-Uhrzeit unten in Freedom eingeblendet wird
- Ob in Alertboxen alle Knöpfe gleich breit sein sollen
- Wo der Kobold liegt (Environment-Var wird auch gecheckt)
- Ob Ordner erst auf Doppelklick öffnen
- Ob Hintergrundbedienung von Fensterdialogen aktiv ist
- Ob der Fileselektor in Mausnähe geöffnet wird
- Anzahl der Zeilen/Spalten des Fileselektors
- Bis zu 40 voreinstellbare Files
- Bis zu 40 voreinstellbare Pfade
- Bis zu 40 voreinstellbare Extensions
- Der Pfad, wo die Images (FREEDMxx.IMG) gesucht wird
- Gültigkeitsmasken für die Images
(Das Image wird in der Breite geteilt durch die Zahl der gefundenen
Gültigkeitsmasken)
Diese Parameter können nur in der Konfigurationsdatei (FREEDOM.CFG)
unter Zuhilfename eines Texteditors verändert werden. Diese Datei ist aber
ausführlich kommentiert, also keine Panik. In der Vollversion wird es
ein Setup-Programm geben, mit dem diese Datei komfortabel modifiziert
werden kann. Bestimmte Parameter werden sich auch zur Laufzeit
von Freedom noch veränderen lassen. Leider ist kaum noch Platz für
Knöpfe im Hauptdialog von Freedom (Vielleicht brauchen wir doch noch
ein "beknacktes" Funktionspopup?! (o:). Aber das Design von Freedom ist
auch noch nicht vollkommen abgeschlossen, wer eine Idee hat, wo man wie
was noch unterbringen kann, schicke uns diese Idee doch zB als Image -
wir lassen uns dann ggf. inspirieren... Dasselbe gilt fuer neue Image-
sätze oder Icons: Immer her damit...
7. Das Programmierer-Kapitel
Die Dateien FREEMSG.H und BEISPIEL.C zeigen den momentanen
Ablauf des Freedom-Protokolls. AUF KEINEN FALL sollte das so schon in
irgendein Programm eingebaut werden, vielmehr ist es als Vorschlag
gedacht, und für Anregungen/Verbesserungen noch weit offen, wir hoffen
auf reges Interesse von Seiten der Programmierer..
Inzwischen hat das Protokoll einen einigermassen brauchbaren Stand
erreicht, und Freedom sollte inzwischen auch unter Memory-Protection
funktionieren (Siehe BEISPIEL.C).
8. Bekannte Einschränkungen
- Kein Aufruf aus TOS-Programmen. Prinzipiell geht das zwar, wenn
dieselben im VT52/TOSWIN-Fenster laufen), dazu müßte allerdings das TOS-
Programm vom residenten Teil kurzzeitig beim AES (per appl_init)
angemeldet werden, damit der Datenaustausch mit dem Fileselektor-Server,
der ja über AES-Messages abläuft, funktioniert
- Das Zusammenwirken mit vielen "Schweineprogrammen" wurde noch nicht sehr
intensiv getestet
- Der Server verbraucht über 100kB Speicherplatz. Es gibt aus unserer Sicht
jedoch keine Alternative zur Benutzung von EnhancedGEM.
Der Verlust vieler Features und eine um vieles längere Entwicklungsdauer
wären die Folge...
- Im MagX-Singel-Mode wird der Freedom-Server suspendiert...
- Das Programm wurde hauptsächlich unter MTOS getestet. Bei einem kurzen
Test unter MagX fiel auf, das in manchen Fällen plötzlich falsche
Fenster getoppt werden, nachdem Freedom ein Fenster geschlossen hat)
Ursache bisher unbekannt (MagX-Cracks vor: Woran kann das liegen?)
- Das Verhalten unter Geneva ist immer noch unbekannt
9. Problemkinder
- STZip (2.6) führt keine Redraws aus, wenn sein Fenster im Hintergrund liegt
- Einige Programme rechnen nicht damit, das ihr Fenster seine Position
während der Fileselektion ändern kann (ua Paula, XControl) und schmieren
unter Misachtung von Rechtecklisten auf dem Screen rum bzw. werten die
versendete WM_MOVED Nachricht nicht oder erst nach der WM_REDRAW-Msg aus...
Abhilfe: Fenster nicht verschieben...
- 525 2.0 zeigt bis zum nächsten Toppen keine Reaktion, nachdem Freedom weg ist
- Triple_D und Kandinsky machen unter SingelTOS Ärger, der sich wohl auf die
fehlerhafte Benutzung von wind_update's zurückführen lässt
- Für das Menüzeilen-Disablen wird das Menü kurz ab- und wieder angemeldet,
im Zusammenhang mit Let' em Fly's Nicelines gibt mit einigen Programmen
das Problem, das sich Menueinträge verschieben (Böööse!!). Daran ist Freedom
nicht schuld, Letemfly eigentlich auch nicht. Übeltäter:
Pixart (1.2), "Rastaman". Abhilfe: Nicelines abschalten oder Programme nicht
benutzen..
10. Einige Antworten
F: Warum bei CPXen der Systemfileselektor?
A: Das ist erstmal eine Sicherheitsmaßname, theoretisch könnte
Freedom auch hier funktionieren, müßte dafür aber deutlich tiefer
ins System einsteigen... Bis auf das das blöde NVDI3 Font-CPX
gibt es ja auch keinen Grund, sich diese Arbeit zu machen, zumal
CPXe normalerweise keinen Fileselector aufrufen, sowieso zu klein,
unhandlich und multitaskingfeindlich sind, ausserdem XControl unsauber
programmiert ist, und... (Aber das würde jetzt zu weit führen.. (o:)
F: Warum kommt bei bestimmten Programmen ohne ersichtlichen Grund
der Systemfileselektor?
A: 1. Das Programm macht AES-Aufrufe vor dem appl_init bzw. macht gar kein
appl_init (Fachbegriff: "Schweineprogramm"..)
2. Bestimmte Programme machen AES-Aufrufe auf unsaubere Weise (Es wird
bei einigen Aufrufen nicht dasselbe global-Feld im AES-Parameter-Block
übergeben, das appl_init initialisiert hat)
F: Freedom kommt ohne ersichtlichen Grund als modaler Dialog?!
A: Laut Atari sollte ein fsel_[ex]input Call entweder garnicht per
wind_update geklammert werden (Applikation), oder mit BEG_UPDATE/
END_UPDATE (Accessory). Nirgens steht, das man auch BEG_MCTRL setzen
soll! Einige wenige Programme (zB Gemini) machen aber das leider!
Fast alle Flydial-Libraries setzen aber ebenfalls (zu Recht) BEG_MCTRL,
wenn sie einen modalen Dialog auf dem Screen haben. Dann darf Freedom
natürlich nicht als Fenster kommen.. Über eine Ausnahmenliste können
Sie diese Sicherheitsmaßnahme füer besagte Programme ausschalten.
F: Warum kommt unter MiNT bei "Load ...." der Systemalert + Fileselektor?
A: Dieser Alert/Fileselektor wird vom AESSYS aufgerufen, und diesem Prozess
sollte man tunlichst NICHT den Faden abnehmen...
F: Warum kommt beim MagX-Popup "Programm starten.." der Systemfileselektor,
obwohl Selectric da funktioniert?
A: Selectric haengt sich dafuer in den VBL-Interupt, was wir fuer äußerst
unsauber (und überflüssig) halten...
F: Es gab einen Systemdeadlock/Absturz, während ich Freedom testete...
A: Wir selbst haben Freedom jetzt schon einige Wochen bei uns im Einsatz
und keine Schwierigkeiten festgestellt. Allerdings haben wir natürlich
nur mit den Programmen testen können, die wir selbst besitzen. Wenn sie
also einen "Übeltäter" (1-2-3-STZip?! Rempel, Kick, Tret.. ((((o:)
ausmachen können: Programmname, Version, Effekte usw. an uns schicken
(email-Addressen am Ende dieses Textes)
F: Das mit STZip hab ich eben nicht verstanden
A: Na, STZip sozusagen als Wolpers-Ersatz...
F: Kann Freedom auch lange Dateinamen?
A: Bisher nicht, es ist aber alles dafür vorbereitet.
Wir sind aber noch nicht überzeugt, das sich dieser zusätzliche
Aufwand fuer die 3% Atari-Benutzer mit Minix-FS lohnt. (Jaja,
MagX3 wird alternative Filesysteme einbinden können...)
F: Scheinbar kann Freedom MTOS-D&D nur empfangen, aber nicht senden?
A: Freedom könnte schon, nur: Es hört ja keiner zu! Im Normalfall
verstehen Applikationen allerhöchstens VA_START, weshalb Freedom
zZt nur diese Msg (und AV_DRAGACCWIND) verschickt. Alternative
wär, immer erst MTOS-D&D zu versuchen, warten, keine Antwort,
dann VA_START senden. Die Wartezeit nervt aber mit der Zeit...
F: Muss es sein, das Freedom unter SingelTOS einen ACC-Slot belegt?
A: Ja. Es gehört zum Konzept von Freedom, das die eigentliche
Funktionalität des Fileselectors/Alerts in einer parallel laufenden
Applikation realisiert ist und unter SingelTOS geht dies eben leider
nur über Accessories.
F: Warum sind die drei Imagesätze (FREDOMxx.IMG) so häßlich?
A: Weil Chrisker sie entworfen hat.
F: Warum sind die Funktions-Icons unten links in Freedom so häßlich?
A: Weil Kolja sie entworfen hat.
F: Warum ist nicht auch der Konfigurationsdateiname von der Auflösung
abhängig, so wie bei den Imagesätzen?
A: Immer mit der Ruhe, kommt ja noch alles. Einfach mal nen guten
Vorschlag per email machen...
11. Jetzt wirds gemein...
Folgende Reaktionen haetten wir erwartet, sind aber (bisher noch)
nicht gekommen (Vorsicht Satire.. (o: NICHT beleidigt sein..)
Michael N.: "Schweineprogramm!"
Peter H.: "Lügner!! Ich verklage euch!"
Ulli R.: "Ich gebe euch 50,- fuer den Alleinvertrieb"
Holger W.: "100kB???!!!! Igitt, viiiel zu groß!"
John Mcl.: "Nervt mich nicht!"
Stefan R.: "Es kann nur einen geben - Freedom!"
Michael R.: "Scheiß Gehäuse..."
Harun S.: "Brumm..."
(mehr fallen uns jetzt grad nicht ein, und so oft lesen wir ja auch
nicht in den Maus-Brettern mit... (((o:)
12. "Wie komm ich denn nu zu einer Vollversion?!?"
Tja, zur Zeit steht noch gar nicht fest, ob es eine öffentliche geben
wird. Wir (Chrisker und Kolja) machen das von der Resonanz auf diese
Demoversion abhängig. Für einen "Fanclub" von 10 Personen machen wir uns
nicht die Mühe, uns ein Schlüsselverfahren auszudenken, den Support und
Bugfixes usw... Stellt sich jedoch heraus, daß ganz viele Atari-User
ganz ganz scharf auf Freedom sind und uns das auch per email kundtun,
kommt er bald als Shareware zum Preis von 30,-.
Wer also Interesse an, oder Verbesserungsvorschläge, geni(t)ale Ideen,
programmiertechnische Anregungen bzgl. Freedom hat, sollte schleunigst
eine email an einer der folgenden Adressen senden:
joust@cs.tu-berlin.de
oder
chrisker@cs.tu-berlin.de
Viel Spaß beim Probieren wünschen
Chrisker und Kolja
Berlin, 06.01.1995, 21:20 Uhr